home *** CD-ROM | disk | FTP | other *** search
/ Inside Indy 1993 / Inside Indy 1993.iso / demos / TRAIN / spanel.doc < prev    next >
Encoding:
Text File  |  1993-06-23  |  10.9 KB  |  230 lines

  1. spanel(1)
  2.  
  3. Name
  4.   spanel - control panel for speech recognition
  5.  
  6. Synopsis
  7.   spanel [ -display displayName ] [ -application displayName ]
  8.          [ -vocabulary vocabularyFileName ] [ -sound soundFileName ]
  9.          [ -recThr # ] [ -program progName ] [ -background ] [ -output ]
  10.          [ -topLevel ] [ -noAGC ] [ -noSave ]
  11.  
  12. Description
  13.   spanel comprises components of a speech recognition system.
  14.  
  15.   spanel has a graphical interfaces that allows the user to manage
  16.   a set of known speech templates (a vocabulary).  Templates can be added,
  17.   deleted, modified, trained, associated with an action, saved or loaded
  18.   as a set in a vocabulary file.
  19.  
  20.   spanel contains algorithms which frame isolated speech utterances
  21.   (or sounds) and trains or matches these tokens against known
  22.   templates in the current vocabulary.
  23.  
  24.   spanel can synthesize keystroke and mouse button events in response to
  25.   a recognition.  These synthesized events are sent to the window
  26.   with pointer focus via the X protocol. 
  27.  
  28. Options
  29.   -display displayName
  30.     designates the X server screen on which to display spanel's GUI.
  31.  
  32.   -applicationDisplay displayName
  33.     designates the X server screen to which spanel will send 
  34.     an action event to in response to a recognition.
  35.  
  36.   -vocabulary vocabFileName
  37.     specifies a file (in spanel's vocabulary file format - probably originally
  38.     created by spanel) which contains the desired templates to manipulate or
  39.     match.  The default filename suffix for vocabulary files is ".voc".
  40.  
  41.   -sound soundFileName
  42.     the name of an aifc file to play in response to a recognition.
  43.     By default, soundFileName is '/usr/lib/sounds/speechAck.aiff'.
  44.     To disable this possibly annoying feature, specify '... -sound "" ...'.
  45.  
  46.   -recThr #
  47.     specify the maximum difference (lowest score) between an unknown token
  48.     and the best-matched template which will still qualify a recognition.
  49.     The default is 400.
  50.  
  51.   -program programName
  52.     spanel starts the specified program (forks and execs a child process).
  53.     Spanel will terminate with the child.
  54.  
  55.   -background
  56.     starts the spanel process but without displaying the GUI.  Automatically
  57.     starts spanel in action mode.
  58.  
  59.   -output
  60.     spanel writes the action string associated with a template (or the template
  61.     name if no action is specified) to stdout upon successful recognition.
  62.  
  63.   -topLevel
  64.     tells spanel to send action events to the top level window (child of root)
  65.     containing the window with pointer focus rather than sending the event
  66.     directly to the window with pointer focus.
  67.  
  68.   -noAGC
  69.     tells spanel not to use experimental automatic gain control algorithms.
  70.     These algorithms attempt to find an optimum audio input level for the
  71.     given signal and noise in the environment.  Usually, the user can manually
  72.     adjust these levels through experimentation using apanel's meters with
  73.     better results than relying on AGC.
  74.  
  75.   -noSave
  76.     tells spanel not to save templates to a central repository (currently
  77.     lance.esd.sgi.com).  This repository will enable users to quickly build
  78.     custom robust speaker-independent vocabularies drawing on a database
  79.     of previously trained words.
  80.  
  81. GUI
  82.   Through the menu bar the user may bring up a file submenu or a utility
  83.   submenu.  The file submenu has options for loading, saving, newing, and
  84.   quitting.  The utilities submenu has options for bringing up apanel and
  85.   clearing previous template training.
  86.  
  87.   The top window is a scrollable status window which simply lists a few lines
  88.   of textual comments like "saved vocabulary test.voc" and "added template
  89.   zulu".
  90.  
  91.   Below the status window is a one line prompt window indicating what spanel
  92.   expects the user to do next (like training prompts: "say the word 'zero'").
  93.  
  94.   On the right below the prompt window is a multiline scrollable vocabulary
  95.   window listing all the templates in the currently loaded vocabulary.
  96.   The templates can be selected for various operations.
  97.  
  98.   On the left below the prompt window are three check boxes labeled action, 
  99.   score, and train.  Selecting any one of them causes spanel to listen.
  100.   When the action mode is selected, spanel will send events to the pointer
  101.   window upon successful recognition.  When the score mode is selected, spanel
  102.   will display the score (distance from framed speech token) of each template
  103.   in the vocabulary window and sort the templates by score (best/lowest first).
  104.   When the train mode is selected, spanel uses the prompt window to
  105.   request the utterance of a vocabulary word then trains the
  106.   corresponding template with the next frame of speech from the user.
  107.   Technically these modes are not mutually exclusive but in practice
  108.   are seldomly used concurrently.
  109.  
  110.   The "correct" button is below the three check boxes and allows the user to
  111.   perform training beyond what can be done in train mode.  The "correct" button
  112.   is active only in score mode and should be pushed when spanel makes an
  113.   incorrect recognition and the user has selected the correct word from the
  114.   vocabulary window.  The result of correcting spanel is a train (with the
  115.   already spoken utterance) of the correct (selected) word and an untrain of
  116.   the incorrect word (the one spanel scored best).  This will reduce the
  117.   chance of spanel making the same mistake in the future.  Note that correcting
  118.   will state an untrain error (only informative - not harmful) if the word has
  119.   not been trained with enough passes (30) for untraining to have pleasant
  120.   effects. 
  121.  
  122.   The delete button deletes the selected templates.
  123.  
  124.   The button below the delete button is used for modifying or adding a template
  125.   name (depending on whether a template is selected or not, respectively).
  126.   Pushing this button modifies or adds a template using the text in the field
  127.   adjacent to this button on the right.  Depressing the return key while the
  128.   corresponding text field is active has the same effect as pushing the button.
  129.   As a convention, template names should use lower-case and underscores
  130.   between words.
  131.  
  132.   The button below the template button is used for specifying actions.
  133.   Pushing this button (or depressing the return key while in the corresponding
  134.   text field to the right) associates the action with the selected template.
  135.   Actions are represented by text strings and are converted into X events.
  136.   Each character of plain text is converted into at least one
  137.   XKeyPress/XKeyRelease event pair (depending on whether or not the X event's
  138.   KeyCode for the specified KeySym needs a shifted KeyCode).
  139.   Symbolic names are enclosed in angle brackets (like <Escape>) and follow
  140.   the X conventions found in /usr/include/X11/keysymdef.h.  For instance
  141.   the Control-D key commonly used for EOF to a shell is represented as an
  142.   action with the string "<Control>d".  Also "<Return>" will be used often at
  143.   the ends of some action strings. Modifier keys, such as the "<Control>" in
  144.   "<Control>d" are released after one plain (non-symbolic) character (the "d").
  145.   The backslash character can escape special characters such as the opening
  146.   angle bracket '<' and itself '\'.
  147.   
  148.   spanel's graphical components will resize somewhat to the window.
  149.  
  150. Capabilities
  151.   The accuracy of spanel will vary greatly (from near-perfect to unusable)
  152.   depending on the audio input.  The biggest factor will be the microphone
  153.   type and its placement.  The Indigo microphone can work but has the
  154.   disadvantage of picking up noise from all directions and of not having a
  155.   fixed location.  A uni-directional noise-cancelling headset microphone
  156.   should be used to attain highest accuracy.  However, the Indigo microphone
  157.   can be held about four inches off the side of the mouth (to avoid wind
  158.   noise) for an acceptable signal to noise ratio, or if the user is blessed
  159.   with an unusually quiet work environment the Indigo microphone can be
  160.   positioned on the desktop.  The user should experiment to get best results.
  161.   Generally, positioning the mic closer to the mouth will provide higher signal
  162.   levels, while the keyboard and monitor may cause interference.
  163.   The user should observe signal and noise levels using apanel's meters for
  164.   estimating the performance of various microphone positions and for
  165.   setting the gain.
  166.  
  167.   An experimental automatic gain control is implemented for situations where
  168.   the signal and noise levels are not known ahead of time and can not be
  169.   adjusted manually.  Most users can adjust these levels better and should
  170.   do so by invoking spanel with -noAGC and raising the sliders on apanel
  171.   until spanel starts responding to normal environmental noise (usually just
  172.   shy of full gain).  If errors from spanel occur that indicate overflowing
  173.   audio buffers (a maximum of four seconds of speech is allowed per utterance),
  174.   the audio level is set too high and the algorithms are being incorrectly
  175.   triggered by noise.
  176.  
  177.   The algorithms are currently capable of framing isolated speech.
  178.   This mean each utterance or sound must be preceded and followed by
  179.   some amount of silence (a few tenths of a second).
  180.  
  181.   Although the algorithms are speaker independent, the vocabulary
  182.   is speaker dependent until it has been trained with various samples of
  183.   speakers from the target audience.  The algorithms will start working
  184.   after four training passes and will continue to become more robust with
  185.   hundreds of speakers making several training passes each.  
  186.  
  187. Limitations
  188.   Training with spanel is not an optimal way to develop a vocabulary.
  189.   An application-oriented training scenario would more accurately capture words
  190.   as the speaker really says them in the course of using the application.
  191.   This will require a training API or toolkit interface to the algorithms and
  192.   cooperation from the application engineers.
  193.  
  194. Bugs
  195.   Changing input source sampling rate from anything but 8KHz can lead to
  196.   unpredictable results.
  197.  
  198.   The source must be set correctly (usually the microphone) for spanel to
  199.   operate correctly.
  200.  
  201.   Currently only selection of one template at a time is possible.
  202.   
  203.   Spanel always keeps one audio port open for input.
  204.  
  205.   When not running in background mode, spanel takes way too much of the
  206.   CPU time due to improper handling of both audio and X input.
  207.  
  208.   After deleting templates, spanel gets the UI order somewhat mixed up.
  209.   In order to prevent spanel from operating on the wrong template 
  210.   after a template selection in the UI, the vocabulary should be reloaded.
  211.   This is a bad bug and will be fixed ASAP.
  212.  
  213. Requirements
  214.   Currently spanel only works on systems with support for the audio library.
  215.   This is currently only the 4D30, the 4D35 and the Iris Indigo.
  216.  
  217.   Spanel uses one audio port for input and possibly one other if output sound
  218.   acknowledgment is enabled.
  219.  
  220.   While listening in background mode, spanel requires approximately 5% of the
  221.   CPU power, with a short burst when a framed token is matched against the
  222.   templates in the currently loaded vocabulary.
  223.  
  224. Also Related
  225.   see apanel(1).
  226.  
  227.   In the future, an API with documentation will be available for
  228.   programmatic interfacing to the recognition algorithms.
  229.  
  230.